package org.qiyu.live.bank.interfaces;

import org.qiyu.live.bank.dto.AccountTradeReqDTO;
import org.qiyu.live.bank.dto.AccountTradeRespDTO;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: sfx
 * Date: 2023-11-03
 * Time: 19:18
 */
public interface IQiyuCurrencyAccountRpc {
    /**
     * 新增账户余额
     *
     * @param userId 用户id
     * @param num    增加余额数量
     */
    void incr(Long userId, int num);

    /**
     * 扣减账户余额
     *
     * @param userId 用户id
     * @param num    扣减余额数量
     */
    void decr(Long userId, int num);

    /**
     * 查询账户余额
     *
     * @param userId 用户id
     * @return 返回账户余额
     */
    Integer getBalance(Long userId);

    /**
     * 进行账户余额的校验,并进行扣减余额
     *
     * @param accountTradeReqDTO 账户交易对象
     * @return 返回操作之后的对象
     */
    AccountTradeRespDTO consumeForGift(AccountTradeReqDTO accountTradeReqDTO);
}